In voice-messaging or voice-response systems connected to the public switched telephone network, outbound (transmit) and inbound (receive) signals are present. As shown in FIG. 2B, a conventional telephone 90 has a single channel 92 for both transmit and receive signals which is a 2-wire connection. This 2-wire channel is coupled to a telephone company office ("CO") switch 93, which converts the 2-wire single channel to separate transmit and receive channels on a 4-wire channel 94. The 4-wire channel is connected, possibly over a long distance, to a remote CO switch 95 where it is converted into a second or remote 2-wire channel 96. The remote channel is routed to a remote device, such as a private branch exchange (PBX) 97 at a private office. The PBX can be coupled to a voice messaging system 1 which may contain yet another four-to-two conversion device with output on an internal channel 99.
Four-to-two wire conversion devices are called "hybrids" and cause signal transformations which are always imperfect due to line impedance mismatches. As shown in FIG. 2C, a hybrid 2 in a voice messaging system 1 may have an internal reference impedance Z.sub.R different from a load impedance Z.sub.L of the PBX 97. Thus, energy from the transmit data can and usually will couple into the receive data along an "echo path" denoted by arrow 5. Echo impairs the accurate detection and recognition of incoming tone and speech signals that are typically used to signal the voice messaging system to control the flow of transmit data (for example, to control the playback of speech). A similar impedance mismatch may exist in other hybrids in the CO switches 93, 95 of FIG. 2B. Since a telephone call may be routed through a plurality of hybrids along a path from caller to receiver, echo can originate at several different points along the telephone connection. The goal of echo-cancellation is to replace the "echo-corrupted" received data with "echo-cancelled" received data, in which the echo is effectively subtracted out of the received data.
As shown in FIG. 2C, the voice messaging system 1 further includes a coder-decoder (CODEC) 4 with a digital-to-analog converter 6A and an analog-to-digital converter 6B. Digital data is routed on a receive data line 202 and a transmit data line 204. The data received by the voice messaging system is corrupted by echo whenever transmit data is non-zero. In particular, in a phone call, if the source of the echo is either very close to the voice messaging system ("near end echo"), or the source of the DTMF signals or speech is distant, the echo problem is worsened. Echo cancellation or reduction in this context comprises techniques to reduce the echo level to enhance signal detection performance.
In the prior art relating to echo cancellation and reduction in voice-messaging and voice-response systems, the use of analog circuitry to compensate for impedance mismatch is well known, as exemplified by U.S. Pat. Nos. 3,499,999 and 3,500,000. Analog circuitry is "tuned" by adjusting hardware component values to reduce the level of echo. Analog apparatus has numerous disadvantages: the extent of "tuning" possible is limited; the guidelines for tuning are not clear; it is not adaptable on a call-by-call basis, etc.
Accordingly, those skilled in the art desire to have a digital echo canceller in a voice messaging or voice response system.
Software implementation of adaptive digital filtering techniques for voice-band echo-cancellation techniques in telecommunications and other areas is well known, as exemplified by: (1) K. Murano et al, "Echo Cancellation and Applications, " IEEE Communications Magazine, Jan. 1990, p. 49; (2) D Messerschmitt et al, "Digital Voice Echo Canceller with a TMS32020," Digital Signal Processing Applications with the TMS320 Family, Vol. 1, Texas Instruments, 1986; (3) M. Sondhi et al., "Silencing Echoes on the Telephone Network," Proceedings of the IEEE, Vol. 68, No. 8, pp. 948-963, August 1980.
Much prior art is concerned with application of echo-cancellation to reduce far-end audible echo during a telephone conversation, as disclosed in Sondhi et al., Messerschmitt et al , and D Duttweiler et al, "A Single Chip VLSI Echo Canceller, " 59 Bell System Tech J. 149, February 1980. Use of echo-cancellation in data modems to cancel near-end and far-end echoes is also known, as disclosed in J Cioffi, "A Fast Echo Canceller Initialization Method for the CCITT V.32 Modem," IEEE Trans. on Comm. 629, May 1990, and parts of J. Proakis, "Digital Communications, " 2d ed McGraw-Hill, 1989.
The high computational needs of all prior echo canceller implementations are a significant hindrance to use of these techniques when computation budgets are tight, as in a voice messaging system with echo cancellation implemented in software for a digital signal processor (DSP) IC. Thus, those of skill in the art would appreciate an efficient implementation to allow other voice-band activity of significant computational cost to run concurrently with the echo-canceller on the DSP.
In the prior art, software echo-canceller parameters (e.g. number of coefficients, various threshold parameters) are not completely configurable, i.e., the parameters cannot all be changed to other values while the messaging system is operational. This is a disadvantage since configurability can be used to "tune" the parameters to the desired level of performance for the available processing power and to match characteristics of the location or site of the system.
Adaptive echo cancellers are also known, as best exemplified by U.S. Pat. No. 4,757,527 (Beniston et al.). Beniston et al. discloses two separate adaptive and programmable filters of identical size and structure, wherein error data from the adaptive filter is compared to error from the programmable filter, and coefficients are transferred when performance of the adaptive filter is better. Beniston et al. is primarily directed at echo cancellation during doubletalk, during which transfer is inhibited.
The adaptation process in prior art echo-cancellers under discussion requires time for convergence, before the echo canceller reduces echo to the desired level. This time may be kept to a minimum at a fairly high computational effort, but the adaptation time is never zero (instantaneous). The use of "training" signals in echo cancellers and adaptive equalizers prior to actual transmission of data addresses this problem, but its use has been limited to modem applications and other phone connections not involving human speech.
Thus, those skilled in the art desire an echo canceller with the capability to use training signals for enhancing the adaptation process, while using other signals to "mask" the audible effect of the training signal.
Those skilled in the art desire an efficient echo-canceller implemented in software in a voice messaging or voice-response system, using adaptive digital filtering techniques, in which an adjacent window of coefficients is chosen to apply echo cancellation to the best form of a sampled waveform.
Those skilled in the art would also desire a software adaptive echo canceller using techniques to minimize computational needs of the echo canceller. Specifically, use of "traffic-engineering" techniques such as processor "cycle steal" is desirable.
Those skilled in the art would also appreciate an adaptive digital software echo canceller which can be implemented on a general-purpose digital signal processor (DSP) which serves multiple channels of voice-band activity while using a maximum number of processor cycles for echo cancellation.